def setup
  size 200, 200
  background 0
  angle = 0
  px, py = 0, 0
  amplitude = 30
  frequency = 0
  fill_gap = 3
  
  -75.upto height+75 do |i|
    angle = 0
    frequency += 0.006
    (width+75).times do |j|
      py = i + sin(radians(angle)) * amplitude
      angle += frequency
      r = abs(py - i) * 255 / amplitude
      c = color r,
                255 - r,
                j * 255 / (width + 50)
      fill_gap.times do |filler|
        set j-filler, py-filler, c
        set j, py, c
        set j+filler, py+filler, c
      end
    end
  end
end